Resource allocation in data processing and computing is used for applications to run on a system. A program initiated by a user generates a process. A computer allocates resources for the process to be run. Typical resources include access to a section of computer memory, data in a device interface buffer, one or more files, a suitable amount of processing power, and the like.
A computer with only a single processor can only perform one process at a time, regardless of the number of programs loaded by a user or initiated on start-up. Single-processor computers emulate the running of multiple programs concurrently because the processor multitasks, rapidly alternating between programs in very small time slices. Time allocation is automatic, however higher or lower priority may be given to certain processes with high priority programs typically allocated either more or larger slices of processor execution time.
On multi-processor computers, different processes can be allocated to different processors so that the computer can truly multitask.